Recette n 56 Accder aux donnes Azure
Page 171

private class CreateDomainTask extends AsyncTask<String, Void, Void>
{
   @Override
   protected Void doInBackground(String... domainsNames)
   {
      try
      {
         // On cr les domaines
         for(int i = 0; i < domainsNames.length; i++)
         {
            CreateDomainRequest cdr = new CreateDomainRequest(domainsNames[i]);
            sdbClient.createDomain(cdr);
         }
      }
      catch (Exception e)
      {
         // Exceptions possibles : AmazonClientException, AmazonServiceException
         // InvalidParameterValueException, NumberDomainsExceededException, MissingParameterException
         Log.d("AWS", "Erreur creation : " + e.toString());
      }

      return null;
   }
}





private class CreateItemTask extends AsyncTask<Void, Void, Void>
{
   private String domainName = null;
   private String itemName = null;
   private Map<String, String> attributesMap = null;

   public CreateItemTask (String domainName, String itemName, Map<String, String> attributesMap)
   {
      this.domainName = domainName;
      this.itemName = itemName;
      this.attributesMap = attributesMap;
   }

   @Override
   protected Void doInBackground(Void... params)
   {
      try
      {
         List<ReplaceableAttribute> attributes = new ArrayList<ReplaceableAttribute>();

         // On cr l'item avec ses attributs
         for(Map.Entry<String, String> e : attributesMap.entrySet())
         {
            attributes.add(new ReplaceableAttribute(e.getKey(), e.getValue(), Boolean.TRUE));
            Log.d("AWS", "attributs : " + e.getKey() + " valeur : " + e.getValue());
         }

         PutAttributesRequest par = new PutAttributesRequest(domainName, itemName, attributes);
         sdbClient.putAttributes(par);
      }
      catch (Exception e)
      {
         Log.d("AWS", "Erreur creation : " + e.toString());
      }

      return null;
   }
}





private class QuerySelectTask extends AsyncTask<Void, Void, SelectResult>
{
   private String sql = null;

   public QuerySelectTask (String sql)
   {
      this.sql = sql;
   }

   @Override
   protected SelectResult doInBackground(Void... params)
   {
      try
      {
         SelectRequest sr = new SelectRequest(sql);
         // Renvoi de rsultat
         return sdbClient.select(sr);
      }
      catch (Exception e)
      {
         Log.d("AWS", "Erreur select : " + e.toString());
         return null;
      }
   }

   @Override
   protected void onPostExecute(SelectResult result)
   {
      super.onPostExecute(result);

      // On traite le retour directement dans un TextView pour l'exemple
      tvResult.setText("Rsultat de la requte :\n\n");
      for (Item item : result.getItems())
      {
         tvResult.setText(tvResult.getText() + item.getName() + "\t");
         for(Attribute attribute : item.getAttributes())
         {
            tvResult.setText(tvResult.getText() + attribute.getValue() + "\t");
         }
         tvResult.setText(tvResult.getText() + "\n");
      }

      // La mme barre de progression utilise prcdemment
      ProgressBar bar = (ProgressBar) findViewById(R.id.progressBar1);
      bar.setVisibility(ProgressBar.GONE);
   }
}
